package com.jltx.zeus.observable

/**
 * @author jltxseo
 *         Created by junlintianxia on 2020/05/20.
 */
interface AsyncMultiCall<T> {
    fun enqueue(callback: Callback<T>?)
    fun cancel()
    interface Callback<T> {
        /**
         * 异步数据源有新的数据时调用，可多次调用
         * @param result
         */
        fun onNext(result: T)

        /**
         * 错误发生的时候调用，若调用了该方法，onNext与OnComplete不再调用
         * @param t
         */
        fun onError(t: Throwable)

        /**
         * 确定异步数据源不再有新的数据时调用，若调用了该方法onNext与onError不再调用
         */
        fun onComplete()
    }
}